﻿// See https://aka.ms/new-console-template for more information
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Console.Write("请输入一个正整数: ");
        int number = int.Parse(Console.ReadLine());

        // 调用 PrimeFactors 方法获取素数因子列表
        List<int> primeFactors = PrimeFactors(number);

        // 使用 string.Join 将素数因子列表转换为逗号分隔的字符串
        string factorsString = string.Join(", ", primeFactors);

        Console.WriteLine($"数字 {number} 的素数因子为: {factorsString}");
    }

    // 计算并返回数字 n 的所有素数因子
    static List<int> PrimeFactors(int n)
    {
        List<int> factors = new List<int>();
        int i = 2;
        int tmp = n;

        // 使用循环找出所有素数因子
        while (i * i <= n)
        {
            if (tmp % i == 0)
            {
                tmp /= i;
                factors.Add(i);
            }
            else
            {
                i++;
            }
        }

        // 如果最后一个素数因子不为 1，则添加到列表中
        if (tmp != 1)
        {
            factors.Add(tmp);
        }

        return factors;
    }
}

